/**
 * 尊敬的用户，你好：页面 JS 面板是高阶用法，一般不建议普通用户使用，如需使用，请确定你具备研发背景，能够自我排查问题。
 * 我们可以用 JS 面板来开发一些定制度高功能，比如：调用API接口，自定义动作执行等等。
 */

// 当页面渲染完毕后马上调用下面的函数，这个函数是在当前页面 - 设置 - 生命周期 - 页面加载完成时中被关联的。
export function didMount() {
    console.log("「页面 JS」：当前页面地址 " + location.href);
}

export function onLocationChange(params) {
    if (!params) {
        return
    }
    const {gridCode, lat, lng, address} = params;
    const districtEle = this.$$("tree_single_select_emh0dc");
    const areaNameEle = self.$$("text_input_1ltpla");
    const streetEle = this.$$("single_select_gbt9nl");
    districtEle.$$setValue('');
    streetEle.$$setValue('');

    // 调用mis的api接口
    let paramsArea = [{name: "cellCode", valueContent: gridCode}];
    api.DATA_SOURCE_EXECUTE("4b089e62-2a5b-487b-ba61-671e6bd223c1", "ddcat", paramsArea, [], "").then(res => {
        if (!res.hasError) {
            const data = res.result;
            if (data.length > 0) {
                const {districtId, streetId, communityID, districtName} = data[0];

                districtEle.$$setValue(districtId);
                areaNameEle.$$setValue(districtName);
                districtEle.onChange();
                streetEle.$$setValue(streetId);
                streetEle.onChange();
            }
        }
    }).catch(err => {
        console.error(err);
    });


}

/**
 * 区划更改
 */
// 获取当前区域下的区域信息
// http://10.250.3.22:8080/mjing-api/unity/org/dic-region/get-region-info-by-id?regionId=xxx

// 所属区域 到街道上一级
// 所属街道 只展示当前的街道
export function regionChange() {
    const self = this;

    const areaRegionId = self.$$("tree_single_select_emh0dc").cValue;
    const streetRegionId = self.$$("single_select_gbt9nl").cValue;

    if (!areaRegionId && !streetRegionId) {
        return;
    }

    const finalRegionId = streetRegionId || areaRegionId;

    const provinceEle = self.$$("number_input_333w8i");
    const cityEle = self.$$("number_input_fck6cp");
    const areaEle = self.$$("tree_single_select_emh0dc");
    const areaNameEle = self.$$("text_input_1ltpla");
    const regionId = self.$$("number_input_84xi0h").cValue = finalRegionId;


    const params = [{
        name: "regionId",
        valueContent: finalRegionId
    }];

    api.DATA_SOURCE_EXECUTE("e1c33d96-610d-48e2-b75e-ae86dad457c6", "api", params, [], "")
        .then(res => {
            console.log(res)
            const resValue = JSON.parse(res.result);
            if (resValue.result.provinceId != null) {
                provinceEle.$$setValue(resValue.result.provinceId);
            }
            if (resValue.result.cityId != null) {
                cityEle.$$setValue(resValue.result.cityId);
            }
            if (resValue.result.districtId != null) {
                areaEle.$$setValue('');
                areaNameEle.$$setValue(resValue.result.districtName);
                areaEle.$$setValue(resValue.result.districtId);
            }
        })
}

